Prior to the background of the invention being set forth, it may be helpful to set forth definitions of certain terms that will be used hereinafter.
The term “Inertial Measurement Unit” or “IMU” as used herein is a hardware device that allows measuring various physical quantities and inferring the motion of the device from them. It is used in various scenarios: Vehicle and personal navigation; Smartphones, for things like gaming (measuring the tilt or motion of the device), step counter, navigation, safety (i.e., turning the device off when it senses it is in free-fall); heads-up display (HUD) such as smart glasses, to compensate for user's motion and projecting correct point of view; and Various controllers, to determine the user's motions and translate them into motion (e.g., Wii™ remote, Xbox™ controller). There are at least three main components in IMU, where at least one of them must be present for information to be available:
The term “Accelerometer” as used herein is a device that measures the total forces applied on the device (including gravity), and infers the total acceleration. Because it measures gravity, when the device is stationary the output of the device is g (the force of gravity). When the device is in acceleration, the device's output is the vector of the total acceleration (gravity plus body acceleration).
The accelerometer can be in 1-axes, 2-axes or 3-axes configuration. Practically, the device measures the projection of the total acceleration vector (since it has direction and size) on the number of axes the device has. Most common are 2-axes and 3-axes.
The accelerometer can be used to measure the pitch and roll of the device (i.e., angles relative to the horizon). When the device is stationary, the projection of the gravity onto its axes is completely determined by its pitch and roll, and therefore by measuring these projections it is possible to reverse compute the pitch and roll.
The accelerometer can also be used to measure the displacement of the device. By removing the known size and orientation of the gravity (assuming we know the pitch and roll accurately even while in motion—the gyro or external sources can be used for that), we are left with the actual body accelerations. By integrating the acceleration, we get the object speed, and from integrating the speed, we get the object displacement.
In practice, due to limited sampling rate, the noise in the measurements, and not knowing the gravity with high accuracy, the displacement is only approximate, and the quality of estimation deteriorates with time.
The term “Gyroscope” or “Gyro” as used herein is a device that measures the rate of rotation of the device around each of the axes it has (1, 2, or 3). This allows estimating the device's current angles, if the angles were known at a previous point in time, and integrating the rate (speed) of rotation over time.
There are differences between the gyro and accelerometer when it comes to measuring angles: Accelerometer can measure only pitch and roll, gyro measures all three; Accelerometer measures absolute angles, while gyro measures only change. This means, the accuracy of the accelerometer is not time-dependent (it only depends on if the device is stationary and the accuracy of the measurement), while if relying only on the gyro the accuracy deteriorates over time.
Gyro measures changes in angles directly, accelerometer measures through measuring an outside known fixed quantity (gravity).
The term “Magnetometer” as used herein is a device that measures the total magnetic field in the environment. Like the accelerometer, it measures the projection of the magnetic field onto its axes (1, 2, or 3 axes). Like the accelerometer uses gravity to measure pitch and roll, the magnetometer uses the magnetic field to measure azimuth, as it is assumed the magnetic field is usually orthogonal to the gravity. Note, that azimuth is relative to the local magnetic field, and not necessarily close to the “actual” azimuth (which points towards the earth's magnetic field, or the one that points towards the North Pole). Using the magnetometer allows measuring rotations around two axes that are normal to the direction of the magnetic field. Azimuth can be recovered if the magnetic field's orientation relative to the gravity is known (in which case the component that is normal to gravity is computed).
Computing the azimuth from the magnetometer readings is similar to computing pitch and roll from accelerometer.
One problem with using the magnetometer to measure azimuth is that is assumes the magnetic field is constant. Usually, the device is connected to additional electrical devices, which create magnetic fields of their own, which are not constant in time. As a result, the azimuth estimation is prone to errors.
Additional components can be: thermometer, pressure sensor, barometric pressure sensor, and the like.
In order to obtain high accuracy of motion estimation from an IMU, it is important to have two types of accuracies:                A. Actual measurement accuracies—that the output of the accelerometer, gyroscope and magnetometer are accurate.        B. Manufacturing accuracies—due to the manufacturing processes, the components are not ideal. Some examples:        
The axes of each component are not exactly orthogonal (90 degrees)
The axes of the various components are not completely aligned (e.g., the x axis of the accelerometer is not exactly parallel to the x axis of the gyroscope).
Bias—the “0” of the device is not exactly the “0” of the measure quantity (i.e., if B is the bias, the device will output B when the true measurement in 0, and will output 0 when the true measurement is −B). This is per component, per axes. Bias has a constant component, and a component that can change over time.
Drift—the rate of change of bias over time. Like Bias, Drift also has a constant component, and a component that can change over time.
Scaling—A constant factor which translates the value measured and the electrical signal strength that represents it.
The measurement accuracies may change over time which means these errors cannot be averaged out. Additionally, the manufacturing inaccuracies are systematic—meaning they quickly accumulate. Without an external source of information, these inaccuracies cannot be estimated.
The term “calibration” as used herein is what the process of estimating the manufacturing inaccuracies is called. The result of the calibration is knowing all those parameters—axes configurations (of each component and between components), bias, drift, and so on. Calibration can also include modelling the measurement inaccuracies (e.g., mean and standard deviation).
For the calibration process to take place, a way to obtain the orientation (and position) of the device is needed, which is independent of the device's own sensors. Furthermore, to obtain high accuracy, this external information is needed for many different combinations of orientations of the device (i.e., just one orientation is not enough).
The difference in prices between various IMUs is sometimes due to the different in the amount of work put into the calibration process.
Sometimes, calibration is performed by attaching the IMU to a rotating table, which is able to measure its own angles very accurately, therefore providing the external information about the angles which is needed for the calibration process. During the calibration process, all manufacturing inaccuracies are determined, as well as the relative orientation between the IMU and the rotating table.
However, the aforementioned calibration device is expensive, not mobile, and not always available. Therefore it would be advantageous to have a calibration method for IMUs using other means.